package com.caoheng.pay.pay.channel.wrap.request;

import java.io.Serializable;

/**
 * @ClassName WechatPayRequestParam
 * @Description 微信支付请求参数
 * @Author shuimodanqing
 * @Date 2018/12/20 1:18 PM
 */
public class WechatPayRequestParam implements Serializable {

    private static final long serialVersionUID = 1L;

    private String appId;

    private String mchId;

    private String deviceInfo;

    private String nonceStr;

    private String signType;

    private String body;

    private String attach;

    private String outTradeNo;

    private String totalFee;

    private String spbillCreateIp;

    private String tradeType;

    private String timeExpire;

    private String notifyUrl;

    private String sign;

    private String openId;

    private String certLocalPath;

    public static class Builder{
        private WechatPayRequestParam payRequestParam;

        public Builder(){
            this.payRequestParam = new WechatPayRequestParam();

        }

        public Builder appId(String appId){
            this.payRequestParam.appId = appId;
            return this;
        }

        public Builder mchId(String mchId){
            this.payRequestParam.mchId = mchId;
            return this;
        }

        public Builder deviceInfo(String deviceInfo){
            this.payRequestParam.deviceInfo = deviceInfo;
            return this;
        }

        public Builder nonceStr(String nonceStr){
            this.payRequestParam.nonceStr = nonceStr;
            return this;
        }

        public Builder signType(String signType){
            this.payRequestParam.signType = signType;
            return this;
        }

        public Builder body(String body){
            this.payRequestParam.body = body;
            return this;
        }

        public Builder attach(String attach){
            this.payRequestParam.attach = attach;
            return this;
        }

        public Builder outTradeNo(String outTradeNo){
            this.payRequestParam.outTradeNo = outTradeNo;
            return this;
        }

        public Builder totalFee(String totalFee){
            this.payRequestParam.totalFee = totalFee;
            return this;
        }

        public Builder spbillCreateIp(String spbillCreateIp){
            this.payRequestParam.spbillCreateIp = spbillCreateIp;
            return this;
        }

        public Builder tradeType(String tradeType){
            this.payRequestParam.tradeType = tradeType;
            return this;
        }

        public Builder timeExpire(String timeExpire){
            this.payRequestParam.timeExpire = timeExpire;
            return this;
        }

        public Builder notifyUrl(String notifyUrl){
            this.payRequestParam.notifyUrl = notifyUrl;
            return this;
        }

        public Builder sign(String sign){
            this.payRequestParam.sign = sign;
            return this;
        }

        public Builder openId(String openId){
            this.payRequestParam.openId = openId;
            return this;
        }

        public Builder certLocalPath(String certLocalPath){
            this.payRequestParam.certLocalPath = certLocalPath;
            return this;
        }

        public WechatPayRequestParam build(){
            return this.payRequestParam;
        }
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getMchId() {
        return mchId;
    }

    public void setMchId(String mchId) {
        this.mchId = mchId;
    }

    public String getDeviceInfo() {
        return deviceInfo;
    }

    public void setDeviceInfo(String deviceInfo) {
        this.deviceInfo = deviceInfo;
    }

    public String getNonceStr() {
        return nonceStr;
    }

    public void setNonceStr(String nonceStr) {
        this.nonceStr = nonceStr;
    }

    public String getSignType() {
        return signType;
    }

    public void setSignType(String signType) {
        this.signType = signType;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getAttach() {
        return attach;
    }

    public void setAttach(String attach) {
        this.attach = attach;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getTotalFee() {
        return totalFee;
    }

    public void setTotalFee(String totalFee) {
        this.totalFee = totalFee;
    }

    public String getSpbillCreateIp() {
        return spbillCreateIp;
    }

    public void setSpbillCreateIp(String spbillCreateIp) {
        this.spbillCreateIp = spbillCreateIp;
    }

    public String getTradeType() {
        return tradeType;
    }

    public void setTradeType(String tradeType) {
        this.tradeType = tradeType;
    }

    public String getTimeExpire() {
        return timeExpire;
    }

    public void setTimeExpire(String timeExpire) {
        this.timeExpire = timeExpire;
    }

    public String getNotifyUrl() {
        return notifyUrl;
    }

    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }
}
